package utils

import (
	"fmt"
	"io/ioutil"
	"os"
)

// 判断文件、文件夹是否存在
func PathExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	return false, err
}

func Mkdir() {
	dir := "log"
	// 创建文件夹
	exist, err := PathExists(dir)
	if err != nil {
		fmt.Println(err.Error())
	} else {
		if exist {
			fmt.Println(dir + "文件夹已存在！")
		} else {
			// 文件夹名称，权限
			err := os.Mkdir(dir, os.ModePerm)
			if err != nil {
				fmt.Println(dir+"文件夹创建失败：", err.Error())
			} else {
				fmt.Println(dir + "文件夹创建成功！")
			}
		}
	}
}

func RemoveDir() {
	// 删除文件
	dir := "log"
	exist, err := PathExists(dir)
	if err != nil {
		fmt.Println(err.Error())
	} else {
		if exist {
			// os.RemoveAll 是遍历删除，文件夹及文件均可使用
			err := os.RemoveAll(dir)
			if err != nil {
				fmt.Println(dir+"删除失败：", err.Error())
			} else {
				fmt.Println(dir + "删除成功！")
			}
		} else {
			fmt.Println(dir + "文件、文件夹不存在！")
		}
	}
}

// WriteFile
func WriteFile(filename string, s string) error {
	return ioutil.WriteFile(filename, []byte(s), os.ModePerm)
}

// Write
func Write(filename string, s string) (err error) {
	f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, os.ModePerm)
	if err != nil {
		return
	}
	defer f.Close()
	_, err = f.Write([]byte(s))
	return
}
